package cc.wsyw126.java.collection.map;

import java.util.*;

/**
 * Created by junpeng.yang on 16/8/25.
 */
public class TestMap {
    public void testHashTable() {
        Hashtable<Integer, String> hashtable = new Hashtable<>();
    }

    public void testVector() {
        Vector<Integer> vector = new Vector<>(Arrays.asList(new Integer[]{1, 4, 32, 5, 3, 2, 2, 3, 4, 4, 5, 5}));

        Thread thread = new Thread(() -> {
            for (int i = 0; i < 100; i++) {
                vector.add(123);
                vector.remove(1);
            }
        });

        //因为Vector是同步的，当一个Iterator被创建而且正在被使用，另一个线程改变了Vector的状态（例如，添加或删除了一些元素），这时调用Iterator的方法时将抛出ConcurrentModificationException，因此必须捕获该异常。
        Thread thread2 = new Thread(() -> {
            try {
                Iterator<Integer> iterator = vector.iterator();
                while (iterator.hasNext()) {
                    System.out.println(iterator.next());
                }
            } catch (ConcurrentModificationException e) {
                System.out.println("e = " + e);
            }
        });

        thread2.start();
        thread.start();
    }


    public void testStatck(){
        Stack<Integer> stack = new Stack<>();
        stack.push(1);
    }

    public static void main(String[] args) {
        TestMap testMap = new TestMap();
        testMap.testVector();
    }
}
